今天的學習筆記中,遇到了一個很奇妙的問題,想要跟大家來分享一下,
那就是舊版的Java的SWITCH語法並不支援String(字串),只有支援數字,
只有新版本的才有支援,但是我的電腦是安裝舊版的,只好將這問題處理掉囉。
以下為舊版無法執行的程式碼
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int num1 = 36, num2 = 12;
String sel="A";
do {
System.out.println("****** 運算選單 ******");
System.out.println("\tA. 加(+)");
System.out.println("\tB. 減(-)");
System.out.println("\tC. 乘(*)");
System.out.println("\tD. 除(/)");
System.out.println("\tE. 離開系統");
System.out.println("*********************");
do {
System.out.print("請選擇功能: ");
sel = scn.next().toUpperCase();
}
while ("ABCDE".indexOf(sel) == -1);
switch (sel)
{
case "A":
System.out.printf(" %d + %d = %d%n", num1, num2, num1+num2);
break;
case "B":
System.out.printf(" %d - %d = %d%n", num1, num2, num1-num2);
break;
case "C":
System.out.printf(" %d * %d = %d%n", num1, num2, num1*num2);
break;
case "D":
System.out.printf(" %d / %d = %d%n", num1, num2, num1/num2);
break;
case "E":
System.out.println("結束程式");
}
}
while (!(sel.equals("E")));
}
}
以下為可在舊版執行之程式碼
package untitled9;
import java.util.Scanner;
public class Untitled2 {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int num1 = 36, num2 = 12;
String fruit;
do {
System.out.println("****** 運算選單 ******");
System.out.println("\tA. 加(+)");
System.out.println("\tB. 減(-)");
System.out.println("\tC. 乘(*)");
System.out.println("\tD. 除(/)");
System.out.println("\tE. 離開系統");
System.out.println("*********************");
do {
System.out.print("請選擇功能: ");
fruit = scn.next().toUpperCase();
}
while ("ABCDE".indexOf(fruit) == -1);
{
if (fruit.equals("A"))
System.out.printf(" %d + %d = %d%n", num1, num2, num1+num2);
if (fruit.equals("B"))
System.out.printf(" %d - %d = %d%n", num1, num2, num1-num2);
if (fruit.equals("C"))
System.out.printf(" %d * %d = %d%n", num1, num2, num1*num2);
if (fruit.equals("D"))
System.out.printf(" %d / %d = %d%n", num1, num2, num1/num2);
}
}
while (!(fruit.equals("E")));
System.out.println("結束程式");
}
}
其實兩個程式碼的部份並沒有多大的差異,只是在於版本上要有認知,
不要像我這麼菜都不知道版本上有無支援此用法的關係。
兩個程式碼的差異在於我將Switch語法改寫成If,
讓每段程式碼都去判斷,但我有請教網路上一下高手們,
都不建議這麼做,因為說是會比較吃資源而且是笨方法XD。